package net.lab1024.sa.admin.module.business.traffic.aibi.domain.model;

import java.util.ArrayList;
import java.util.List;
import java.util.Optional;

import com.alibaba.fastjson2.annotation.JSONField;

import lombok.Data;

/**
 * Aibi 摄像机排队数据报文
 */
@Data
public class AibiCarQueueMessage {

    /**
     * 交通路口道路编号（jtll_ddbh）
     */
    @JSONField(name = "jtll_ddbh")
    private String roadSectionCode;

    /**
     * 统计开始时间
     */
    @JSONField(name = "start_time")
    private String startTime;

    /**
     * 统计结束时间
     */
    @JSONField(name = "end_time")
    private String endTime;

    /**
     * 车道列表
     */
    @JSONField(name = "car_nums")
    private List<AibiCarQueueLaneMessage> laneMessages = new ArrayList<>();

    /**
     * 根据索引获取车道
     */
    public Optional<AibiCarQueueLaneMessage> laneByIndex(int index) {
        if (laneMessages == null || index < 0 || index >= laneMessages.size()) {
            return Optional.empty();
        }
        return Optional.ofNullable(laneMessages.get(index));
    }

    /**
     * 根据车道编码获取车道
     */
    public Optional<AibiCarQueueLaneMessage> laneByCode(String laneCode) {
        if (laneMessages == null || laneCode == null) {
            return Optional.empty();
        }
        return laneMessages.stream()
                .filter(item -> laneCode.equalsIgnoreCase(item.getLaneCode()))
                .findFirst();
    }
}

